package Pruebas;

import junit.framework.TestCase;
import junit.framework.TestSuite;
import BaseDatos.BD;

public class ClaseBDTest extends TestCase {


	//Atributos
	private String usuario1,usuario2,usuario3,usuario4;
	private String password1,password2,password3,password4;
	private String DNI;
	private String error;
	
	private BD base;
	//---------------------------------------------------------------------------------------------------------------------------//
	public ClaseBDTest(String name)
	{
		super(name);
	}
	//---------------------------------------------------------------------------------------------------------------------------//
	public void setUp()
	{
		usuario1 = "elGon";
		usuario2 = "elDani";
		usuario3 = "laDanny";
		usuario4 = "otroUsuario";
		password1 = "proyecto";
		password2 = "proyecto";
		password3 = "proyecto";
		password4 = "error";
		DNI = "71285353R";
		error = "error";
		
		base=new BD();
		
	}
	//---------------------------------------------------------------------------------------------------------------------------//
	//----------------------------------------------iniciaSesion()---------------------------------------------------------------//
	//---------------------------------------------------------------------------------------------------------------------------//
	public void testUsuarioExiste() 
	{
		assertEquals(true,base.existeUsuario(usuario1));
	}
	//---------------------------------------------------------------------------------------------------------------------------//
	public void testUsuarioNoExiste() 
	{
		assertEquals(false,base.existeUsuario(usuario4));
	}
	//---------------------------------------------------------------------------------------------------------------------------//
	public void testPasswordCorrecta() 
	{
		assertEquals(password1,base.getPassword(usuario1));
	}
	//---------------------------------------------------------------------------------------------------------------------------//
	public void testUsuarioNoValido() 
	{
		assertEquals(error,base.getPassword(usuario4));
	}
	
	//---------------------------------------------------------------------------------------------------------------------------//
	public void testLogueadoCorrecto() 
	{
		assertEquals(true,base.estaLogueado(usuario2));
	}
	//---------------------------------------------------------------------------------------------------------------------------//
	public void testLogueadoIncorrecto() 
	{
		assertEquals(false,base.estaLogueado(usuario3));
	}
	//---------------------------------------------------------------------------------------------------------------------------//
	public void testIniciaCorrecto() 
	{
		assertEquals(true,base.iniciaSesion(usuario3));
	}
	//---------------------------------------------------------------------------------------------------------------------------//
	public void testGetDNICorrecto() 
	{
		assertEquals(DNI,base.getDNI(usuario1));
	}
	//---------------------------------------------------------------------------------------------------------------------------//
	public void testGetDNIIncorrecto() 
	{
		assertEquals(error,base.getDNI(usuario4));
	}
	//---------------------------------------------------------------------------------------------------------------------------//
	public void testGetPermisosCorrecto() 
	{
		assertEquals(0,base.getPermisos(usuario1));
	}
	//---------------------------------------------------------------------------------------------------------------------------//
	public void testGetPermisosIncorrecto() 
	{
		assertEquals(-1,base.getPermisos(usuario4));
	}
	//---------------------------------------------------------------------------------------------------------------------------//
	public void testCierraCorrecto() 
	{
		assertEquals(true,base.cierraSesion(usuario3));
	}
	//---------------------------------------------------------------------------------------------------------------------------//
	//---------------------------------------------------------------------------------------------------------------------------//
	//---------------------------------------------------------------------------------------------------------------------------//
	public static TestSuite suite()
	{
		TestSuite raiz = new TestSuite("Test Clase BD.java");
		
		TestSuite suiteExisteUsuario = new TestSuite ("Test existeUsuario");
		suiteExisteUsuario.addTest(new ClaseBDTest("testUsuarioExiste"));
		suiteExisteUsuario.addTest(new ClaseBDTest("testUsuarioNoExiste"));
		raiz.addTest(suiteExisteUsuario);
		
		TestSuite suiteGetPassword = new TestSuite ("Test getPassword");
		suiteGetPassword.addTest(new ClaseBDTest("testPasswordCorrecta"));
		suiteGetPassword.addTest(new ClaseBDTest("testUsuarioNoValido"));
		raiz.addTest(suiteGetPassword);
		
		TestSuite suiteEstaLogueado = new TestSuite ("Test estaLogueado");
		suiteEstaLogueado.addTest(new ClaseBDTest("testLogueadoCorrecto"));
		suiteEstaLogueado.addTest(new ClaseBDTest("testLogueadoIncorrecto"));
		raiz.addTest(suiteEstaLogueado);
		
		TestSuite suiteIniciaSesion = new TestSuite ("Test iniciaSesion");
		suiteIniciaSesion.addTest(new ClaseBDTest("testIniciaCorrecto"));
		raiz.addTest(suiteIniciaSesion);
		
		TestSuite suiteGetDNI = new TestSuite ("Test getDNI");
		suiteGetDNI.addTest(new ClaseBDTest("testGetDNICorrecto"));
		suiteGetDNI.addTest(new ClaseBDTest("testGetDNIIncorrecto"));
		raiz.addTest(suiteGetDNI);
		
		TestSuite suiteGetPermisos = new TestSuite ("Test getPermisos");
		suiteGetPermisos.addTest(new ClaseBDTest("testGetPermisosCorrecto"));
		suiteGetPermisos.addTest(new ClaseBDTest("testGetPermisosIncorrecto"));
		raiz.addTest(suiteGetPermisos);
		
		TestSuite suiteCierraSesion = new TestSuite ("Test cierraSesion");
		suiteCierraSesion.addTest(new ClaseBDTest("testCierraCorrecto"));
		raiz.addTest(suiteCierraSesion);
		
		return raiz;		
	}
	
}
